from haystack import indexes
from .models import SKU
"""
0.我们需要在 模型所对应的子应用 创建 search_indexes.py 文件。以方便haystack来检索数据
1.索引类必须继承自 indexes.SearchIndex , indexes.Indexable
2.必须定义一个字段 document = True
    字段名什么都可以  text是惯例
    所有的索引 这个字段都一致就行
3.use_template = True
    允许我们来单独设置一个文件，来指定哪些字段进行检索
    具体在templates（模板文件夹下）/search/indexes/goods（子应用名目录）/sku_text.txt（模板类名小写_text.txt）文件中定义
数据  <------Haystack----->      elasticsearch

运作：我们应该让haystack 将数据获取到 给es 来生成索引
    在虚拟环境下  python manage,py rebuild_index
"""


class SKUIndex(indexes.SearchIndex,indexes.Indexable):
    """SKU索引数据模型类"""
    text = indexes.CharField(document=True,use_template=True)
    def get_model(self):
        """返回建立索引的模型类"""
        return SKU
    def index_queryset(self, using=None):
        """返回要建立索引的数据查询集"""
        return self.get_model().objects.filter(is_launched=True)
        # return SKU.objects.all()
